This invention relates generally to the programming of field programmable logic devices. More particularly, this invention relates to a field programmable logic device that obtains and uses device-specific characterization data during the programming process.
Field programmable logic devices are digital logic circuits that can be programmed to perform a variety of logical functions. A specified logical function is programmed into a field programmable logic device by a customer. The customer may subsequently overwrite the initial logical function with a new logical function. These operations are more fully appreciated with reference to FIG. 1.
FIG. 1 illustrates a field programmable logic device 20 which includes a set of field programmable logic circuits 22. A programming pattern 24 specifies a logical function. The programming pattern 24 is programmed into the field programmable logic circuits 22 through an external programming circuit 26. The external programming circuit 26 may be automatic test equipment or some other external device which generates an appropriate set of programming voltages with designated pulse widths and voltage values. An industry-standard 4-pin Joint Test Action Group (JTAG) interface (IEEE Std 1149.1-1990) may be used to install the programming pattern 24.
The advantage of using an external programming circuit 26 is that it typically provides a user with accurate information regarding the parameters associated with the programming of the device. That is, to program field programmable logic circuits 22, selected field programmable logic circuits receive a designated voltage for a predetermined period of time (pulse length). An external programming circuit 26 provides accurate information regarding the precise amount of voltage that is applied to field programmable logic circuits during the programming process. This precise information is used to optimize the programming process.
In the absence of this accurate information; the programming process is typically implemented by using longer voltage pulses. There is a two-fold problem with this approach. First, it is time consuming to apply the longer voltage pulses. Second, the unknown programming voltage and the longer pulses can result in an excess voltage that can place stress on the field programmable logic circuits, thereby diminishing their operative life cycle.
Recently, in-system programmability has been provided in field programmable logic devices. In-system programmability allows field programmable logic circuits 22 to be programmed without an external programming circuit 26. In-system programmability is used when the device is positioned on a circuit board and therefore cannot be programmed with an external programming circuit.
As shown in FIG. 1, the programming pattern 28 is applied to an internal programming circuit 28. The internal programming circuit 28 internally generates voltage signals that are used to program the field programmable logic circuits 22 in accordance with the programming pattern 24.
The problem with an internal programming circuit 4 is that the voltage it generates varies from device to device. That is, different processing tolerances result in devices that generate different voltages. Given this variability from device to device, vendors of field programmable logic devices advise their customers to operate the internal programming circuit with a relatively long voltage pulse to insure that the device is programmed as desired. In other words, the variability from device to device prevents an optimal voltage from being used for the programming of each device. Since an optimal voltage is not used for each device, programming is more time consuming. In addition, the device may generate excessive voltages, which potentially damage the field programmable logic circuits.
In view of the foregoing, it would be highly desirable to provide an improved internal programming circuit for in-system programming of field programmable logic devices.
A programmable logic device includes field programmable logic circuits and an internal programming circuit. The internal programming circuit includes a memory to store characterization data characterizing programmed voltage values of the field programmable logic circuits as a function of program voltage pulse widths. A characterization data processor programs the field programmable logic circuits using the characterization data.
The characterization data characterizes the physical attributes of the programmable logic device being programmed. This information can be used to select optimal voltage levels and voltage pulse widths for use during the programming process. As a result, the characterization data allows the field programmable logic device to be programmed as quickly as possible. Further, the technique allows the device to be programmed with minimal exposure to excessive voltages.